import {fileURLToPath, URL} from 'node:url'
import { resolve, dirname } from 'node:path'
import path from 'path'

import {defineConfig} from 'vite'
// vue插件
import vue from '@vitejs/plugin-vue'
import tailwindcss from '@tailwindcss/vite'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'

import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite';

// import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // 使用 Tailwind Vite 插件
    tailwindcss(),
    // SVG图标
    createSvgIconsPlugin({
      // 指定需要缓存的图标文件夹
      iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
      // 指定symbolId格式
      symbolId: 'icon-[dir]-[name]',
      // 自定义插入位置
      inject: 'body-last',
      // 自定义DOM id
      customDomId: '__svg__icons__dom__',
    }),
    VueI18nPlugin({
      // locale messages resource pre-compile option
      include: 'src/**/*.json'
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
    /**
     * 导入时想要省略的扩展名列表, vite不建议忽略自定义导入类型的扩展名（例如：.vue）
     * 因为它会影响 IDE 和类型支持，如果省略.vue，组件中的所有.vue文件必须带上扩展名
     **/
    extensions: [
      '.vue',
      '.mjs',
      '.js',
      '.mts',
      '.ts',
      '.jsx',
      '.tsx',
      '.json'
    ]
  },
  server: {
    // https: true,
    host: '0.0.0.0', // 配置了0.0.0.0，静态资源服务将以localhost和本地Ip进行启动
    port: 8100,
    open: true
    // proxy: {
    //     '/gs-service': {
    //         target: 'http://47.109.111.18:1002',//后端地址
    //         changeOrigin: true,//修改源
    //         rewrite: path => path.replace(/^\/gs-service/,"")
    //     }
    // },
  },
  // css: {
  //   devSourcemap: false,
  //   preprocessorOptions: {
  //     scss: {
  //       sourceMap: true,
  //       additionalData: `
	// 				@import "@/assets/scss/base-theme.scss";
	// 				@import "@/assets/scss/scss-components/global.variable.scss";
	// 				@import "@/assets/scss/scss-components/layout.variable.scss";
	// 			`
  //     }
  //   },
  // }
})
